GNU Stowによるdotfiles管理
利点
設定ファイルの数だけln -sを実行するようなシェルスクリプトを書かずに済む
階層が深い位置にある設定ファイル (例 ~/.config/fish/)も簡単に扱える
シンボリックリンクの削除も簡単にできる
方法
dotfilesを管理するディレクトリを作成する
$ mkdir dotfiles
設定ファイルのまとまりごとにディレクトリを作成する(管理しやすいように)
code:dotfiles/
.
├── ag
├── fish
├── git
├── tmux
├── vim
└── zsh
「設定ファイルを置く場所」(例 ~/) 以下の構造を、各ディレクトリ内で再現する
code:dotfiles/
.
├── ag
│ └── .agignore
├── fish
│ └── .config
│ └── fish
│ ├── config.fish
│ ├── fish_variables
│ └── functions
├── git
│ ├── .gitconfig
│ ├── .gitignore_global
│ └── .tigrc
├── tmux
│ └── .tmux.conf
├── vim
│ └── .vimrc
└── zsh
├── .zaliases
└── .zshrc
「設定ファイルを置く場所」に存在する設定ファイルを削除する
Stowでシンボリックリンクを作成する
$ cd dotfiles
$ stow ag fish git tmux vim zsh -t ~/
code:~/
.
├── .agignore
├── .config
│ └── fish
│ ├── config.fish
│ ├── fish_variables
│ └── functions
├── .gitconfig
├── .gitignore_global
├── .tigrc
├── .tmux.conf
├── .vimrc
├── .zaliases
└── .zshrc
シンボリックリンクを削除する
$ stow --delete ag -t ~/
⚠動作確認してない
ref